Skip to main content컴퓨터 내부에서 시스템 콜이 호출되면, 아래와 같은 작업이 수행된다.
핵심은, 소프트웨어 인터럽트와 커널 모드, 사용자 모드이다.
운영 체제에는 인터럽트를 발생시키는 특정 명령어가 있는데, 시스템 콜도 이러한 소프트웨어 인터럽트의 일종이다.
소프트웨어 인터럽트가 발생했을 때 수행되는 과정
- CPU는 현재 수행 중인 작업을 백업한다.
- 커널 영역 내 인터럽트를 처리하기 위한 코드 (여기서는 시스템 콜을 구성하는 코드)를 실행한다.
- 사용자 영역의 코드 실행을 재개한다.
CPU는 명령어를 실행하는 과정에서 사용자 영역을 실행할 때의 모드와 커널 영역을 실행할 때 모드를 구분하여 실행한다.
- 사용자 모드: 사용자 영역에 적재된 코드르 실행할 때의 모드
- 사용자 모드로 실행 중인 CPU는 입출력 명령어와 같이 자원에 접근하는 명령어를 만나도 이를 실행하지 않는다.
- 커널 모드: 커널 영역에 적재된 코드를 실행할 때의 모드
이렇게 두 가지의 모드로 구분하여 실행하는 것을 이중 모드라고 한다.